//
//  Vector3.h
//  3DMathSDK
//
//  Created by admin on 16/7/5.
//  Copyright © 2016年 douyu. All rights reserved.
//

#ifndef Vector3_h
#define Vector3_h

#include <stdio.h>
#include <stdbool.h>
#include "DataType.h"

extern const Vector3 kVector3Zero/* = {0, 0, 0}*/;
extern const Vector3 kVector3AxisX; // X轴
extern const Vector3 kVector3AxisY; // Y轴
extern const Vector3 kVector3AxisZ; // Z轴
// 两个向量是否相等
bool isVectorEqual(Vector3 vector1, Vector3 vector2);

// 向量加数字
Vector3 plusNum(Vector3 vector, float number);

// 取模
float modulo(Vector3 vector);

// 向量乘数字
Vector3 multiplyNum(Vector3 vector, float number);

// 标准化
Vector3 normalize(Vector3 vector);

// 向量相加
Vector3 plus(Vector3 vector1, Vector3 vector2);

// 向量相减
Vector3 minus(Vector3 vector1, Vector3 vector2);

// 向量距离
float distance(Vector3 vector1, Vector3 vector2);

// 向量点乘
float dotProduct(Vector3 vector1, Vector3 vector2);

// 向量叉乘
Vector3 crossProduct(Vector3 vector1, Vector3 vector2);

#endif /* Vector3_h */
